﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Sige
{
    public partial class AltaAlumnos : Form
    {
        Tipos_documento tipodoc = new Tipos_documento();
        DataTable codtipodoc = new DataTable();
        DataTable persona = new DataTable();
        Persona person = new Persona();
        DateTime fechaactual = DateTime.Today;
        Alumno alu = new Alumno();
        Funciones_Varias fv = new Funciones_Varias();
        
        public AltaAlumnos()
        {
            InitializeComponent();
        }

        private void AltaAlumnos_Load(object sender, EventArgs e)
        {
            btnGrabar.Enabled = false;
            codtipodoc = tipodoc.ObtenerTablaTiposDoc();
            fv.Carga_Combos(ref cboCodTipoDocumento, codtipodoc, "tipodocumento", "descripcion");
            txtDiaAlta.Text = fechaactual.ToString().Substring(0, 2);
            txtMesAlta.Text = fechaactual.ToString().Substring(3, 2);
            txtAnioAlta.Text = fechaactual.ToString().Substring(6, 4);
        }

        private void cboCodTipoDocumento_Leave(object sender, EventArgs e)
        {
            Tipos_documento tipodoc = new Tipos_documento();
            if (cboCodTipoDocumento.Text != "")
                txtMostrarTipoDocum.Text = tipodoc.ObtenerDescripcion(cboCodTipoDocumento.Text);
            else
            {
                MessageBox.Show("Debe ingresar un código de documento", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                cboCodTipoDocumento.Focus();
            }
        }

        private void txtNroDocumento_Leave(object sender, EventArgs e)
        {
            string numdoc = txtNroDocumento.Text;
            if (numdoc != "")
            {
                fv.Sacar_Ceros_Izquierda(ref numdoc);
            }
            if (person.Persona_Existente(cboCodTipoDocumento.Text, numdoc) == false)
            {
                if (MessageBox.Show("La persona no existe. ¿Desea ingresarla?", "Error al mostrar Persona", MessageBoxButtons.YesNo, MessageBoxIcon.Error) == DialogResult.Yes)
                {
                    AltaPersonas altap = new AltaPersonas();
                    altap.Show();
                }
                txtNroDocumento.Clear();
                txtNroDocumento.Focus();
            }
            else
            {
                persona.Clear();
                person.ObtenerTablaPersonaPorDocumento(ref persona, cboCodTipoDocumento.Text, numdoc);
                grdDatosPersona.DataSource = persona;
                btnGrabar.Enabled = true;
                cboCodTipoDocumento.Enabled = false;
                txtNroDocumento.Enabled = false;
            }
        }

        private void btnCerrar_Click(object sender, EventArgs e)
        {
            ActiveForm.Close();
        }

        private void btnNuevaAlta_Click(object sender, EventArgs e)
        {
            cboCodTipoDocumento.Enabled = true;
            txtMostrarTipoDocum.Text = "";
            txtNroDocumento.Enabled = true;
            txtNroDocumento.Text = "";
            cboCodTipoDocumento.Focus();
            persona.Clear();
            grdDatosPersona.DataSource = null;
            btnGrabar.Enabled = false;
        }

        private void btnGrabar_Click(object sender, EventArgs e)
        {
            if (alu.Alumno_Existente(cboCodTipoDocumento.Text, txtNroDocumento.Text) == false)
            {
                //SETEAMOS EL OBJETO ALUMNO:
                if (cboEstado.Text == "") alu.Estado = true;
                else if (cboEstado.Text == "Activo") alu.Estado = true;
                else alu.Estado = false;
                alu.TipoDocumento = cboCodTipoDocumento.Text;
                alu.Documento = txtNroDocumento.Text;
                alu.FechaDeAlta = fechaactual;
                if (alu.Insertar() == true)
                {
                    if (MessageBox.Show("El registro ha sido grabado con éxito. ¿Desea ingresar un nuevo registro?", "El registro se grabó", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
                    {
                        cboCodTipoDocumento.Enabled = true;
                        txtMostrarTipoDocum.Text = "";
                        txtNroDocumento.Enabled = true;
                        txtNroDocumento.Text = "";
                        cboCodTipoDocumento.Focus();
                        persona.Clear();
                        grdDatosPersona.DataSource = null;
                        btnGrabar.Enabled = false;
                    }
                    else this.Close();
                }
                else
                {
                    MessageBox.Show("No se pudo grabar Alumno", "Error al grabar Alumno", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                if (alu.Estado == false)
                {
                    if (MessageBox.Show("El alumno está dado de baja. ¿Desea darlo de alta nuevamente?", "El alumno ya existe", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        if (alu.Activar() == true)
                            MessageBox.Show("El alumno se dio de alta exitosamente", "Se dio de alta al alumno", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        else
                            MessageBox.Show("No se pudo dar de alta al alumno", "Error al dar de alta", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
                else MessageBox.Show("Error. El alumno ya existe", "Error al grabar Alumno", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        
    } //FIN CLASE ALTAALUMNOS : FORM
}// FIN NAMESPACE SIGE
